<html>
<head>
<title>Remake de Fruity Frank - Version 0.03</title>
<style type="text/css">
span {
	font-family: 'Courier New';
	font-size: 10pt;
	color: #000000;
}
.SpanClass0 {
	color: #808080;
}
.SpanClass3 {
	color: #008080;
}
.SpanClass5 {
	font-weight: bold;
	color: #0000FF;
}
.SpanClass7 {
	color: #808080;
}
.SpanClass10 {
	font-weight: bold;
	color: #000080;
}
.SpanClass11 {
}
</style>
</head>
<body bgcolor="#FFFFFF">
<h2>Remake (parcial) de Fruity Frank... 03 - Moviendo el personaje</h2>
<p align="right">(Volver al <a href="doc.html">&iacute;ndice</a>) </p>
<p>Un juego real no se queda parado hasta que pulsemos una tecla, sino que debe proseguir continuamente: por ejemplo, aunque nosotros no hagamos nada, los enemigos deber&aacute;n moverse. Normalmente, incluso en la pantalla de presentaci&oacute;n habr&aacute; alg&uacute;n tipo de animaci&oacute;n.</p>

<p>Por eso, lo habitual ser&aacute; que no usemos &quot;SDLA_esperarTecla&quot; sino &quot;SDLA_teclaPulsada&quot;. La forma de emplear esta orden ser&aacute; indicarle entre par&eacute;ntesis la tecla que queremos comprobar: if ( SDLA_teclaPulsada (TECLA_ABA) ) ...&quot;
</p>

<p>Hay varias constantes predefinidas, para representar las teclas m&aacute;s habituales:
</p>

<ul>
  <li>TECLA_ABA para la flecha hacia abajo del teclado.</li>
  <li>TECLA_ARR para la flecha hacia arriba.</li>
  <li>TECLA_DER para la flecha hacia la derecha.</li>
  <li>TECLA_IZQ para la flecha hacia la izquierda.</li>
  <li>TECLA_ESC para la tecla de ESCAPE (Esc).</li>
  <li>TECLA_ESP para la barra espaciadora.</li>
  <li>...</li>
</ul>

<p>Lo &uacute;nico que queda para que el personaje se mueva es que su posici&oacute;n no sean unas coordenadas fijas, como el (300,100) del ejemplo anterior, sino usar variables (por ejemplo: xPersonaje, yPersonaje) que modifiquemos cuando comprobemos que se pulsa una tecla.</p>

<p>Finalmente, el propio cuerpo del programa ya no deber&aacute; ejecutarse s&oacute;lo una vez, sino repetirse hasta que se pulse cierta tecla (por ejemplo ESC).</p>

<p>La nueva apariencia de nuestro mini-juego ser&aacute;:</p>

<pre><code>#include &quot;SDL_ASI.h&quot;

int main (int argc, char** argv)
{
    int xPersonaje=340, yPersonaje=100;

    SDLA_inicializar(640,480,24);

    SDLA_Imagen* fondoPantalla;
    SDLA_Imagen* personaje;
    fondoPantalla=SDLA_cargarImagen(&quot;fondo.bmp&quot;);
    personaje=SDLA_cargarImagen(&quot;personaje1.bmp&quot;);


    do {
        SDLA_dibujarImagenOculta(fondoPantalla,96,0);
        SDLA_dibujarImagenOculta(personaje, xPersonaje, yPersonaje);
        SDLA_visualizarOculta();

        if ( SDLA_teclaPulsada (TECLA_ABA) )
          yPersonaje += 4;
        if ( SDLA_teclaPulsada (TECLA_ARR) )
          yPersonaje -= 4;
        if ( SDLA_teclaPulsada (TECLA_DER) )
          xPersonaje += 4;
        if ( SDLA_teclaPulsada (TECLA_IZQ) )
          xPersonaje -= 4;

    } while (! SDLA_teclaPulsada (TECLA_ESC));
    return 0;

}</code></pre>

<p>Pero si nos acercamos mucho a los extremos, veremos que el personaje se puede salir de la pantalla de juego... o incluso de la pantalla del ordenador. &Eacute;sa ser&aacute; la pr&oacute;xima mejora.</p>

<p>Para ver todo el proyecto en conjunto: <a href="http://code.google.com/p/fruityfrank"> code.google.com/p/fruityfrank</a></p>
<p align="right">(Volver al <a href="doc.html">&iacute;ndice</a>) </p>
</body>
</html>
